home *** CD-ROM | disk | FTP | other *** search
- /*
- File: CIconButtons.h
-
- Description:
- This file contains type declarations, constants, and routine prototypes
- for accessing the routines implemented in CIconButtons.c. These routines
- are used to implement the color icon buttons displayed in the top of
- HTMLSample's windows.
-
- HTMLSample is an application illustrating how to use the new
- HTMLRenderingLib services found in Mac OS 9. HTMLRenderingLib
- is Apple's light-weight HTML rendering engine capable of
- displaying HTML files.
-
- Copyright:
- © Copyright 1999 Apple Computer, Inc. All rights reserved.
-
- Disclaimer:
- IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc.
- ("Apple") in consideration of your agreement to the following terms, and your
- use, installation, modification or redistribution of this Apple software
- constitutes acceptance of these terms. If you do not agree with these terms,
- please do not use, install, modify or redistribute this Apple software.
-
- In consideration of your agreement to abide by the following terms, and subject
- to these terms, Apple grants you a personal, non-exclusive license, under Apple’s
- copyrights in this original Apple software (the "Apple Software"), to use,
- reproduce, modify and redistribute the Apple Software, with or without
- modifications, in source and/or binary forms; provided that if you redistribute
- the Apple Software in its entirety and without modifications, you must retain
- this notice and the following text and disclaimers in all such redistributions of
- the Apple Software. Neither the name, trademarks, service marks or logos of
- Apple Computer, Inc. may be used to endorse or promote products derived from the
- Apple Software without specific prior written permission from Apple. Except as
- expressly stated in this notice, no other rights or licenses, express or implied,
- are granted by Apple herein, including but not limited to any patent rights that
- may be infringed by your derivative works or by other works in which the Apple
- Software may be incorporated.
-
- The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO
- WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED
- WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN
- COMBINATION WITH YOUR PRODUCTS.
-
- IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION
- OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT
- (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN
- ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- Change History (most recent first):
- Wed, Dec 22, 1999 -- created
- */
-
-
- #ifndef __CICONBUTTONS__
- #define __CICONBUTTONS__
-
- #include <Types.h>
-
- /* these are the resource types we use. ResEdit
- templates for these resource types are defined in
- the application's resource fork. */
- enum {
- kIconButtonIDListType = 'RBCL',
- kIconButtonType = 'CICB'
- };
-
- /* buttons have three states, and three icons
- for each of those states. disabled is how it looks
- when it cannot be clicked, up and down define
- how it looks in each of those states. */
- enum {
- kCBdisabled = 0,
- kCBup = 1,
- kCBdown = 2
- };
-
- #pragma options align=mac68k
- typedef struct {
- Rect bounds;
- short drawnstate;
- short cicnIDs[3]; /* resource id's for each state's cicn
- resource. indexes in this array map to the
- states defined above. */
- char stringdata[1]; /* variable size c string */
- } CIconButton, **CIconButtonHandle;
- #pragma options align=reset
-
-
- /* NewCIconButton retrieves a new color icon button
- resource from the resource file. the id number
- corresponds to the resource id of the CICB resource. */
- CIconButtonHandle NewCIconButton(short id);
-
-
- /* DisposeCIconButton disposes of any structures allocated
- for the color icon button allocated by NewCIconButton. */
- void DisposeCIconButton(CIconButtonHandle cicb);
-
-
- /* SetCIconButtonPosition sets the color icon button's
- screen postion. h and v are coordinates in the
- current grafport. */
- void SetCIconButtonPosition(CIconButtonHandle cicb, short h, short v);
-
-
- /* GetCIconButtonStringData returns a new handled containing
- the string data copied from the color icon resource. The
- handle will contain a C-style string terminated with a zero
- byte. It is the caller's responsibility to dispose of this
- handle after it has been used. */
- OSErr GetCIconButtonStringData(CIconButtonHandle cicb, Handle *strdata);
-
-
- /* DrawCIconButton draws the icon button using the
- as it should appear given the state specified. state
- should be either kCBdisabled, kCBup, or kCBdown.
- The last state a button is drawn in affects the
- result of TrackCIconButton. */
- void DrawCIconButton(CIconButtonHandle cicb, short state);
-
-
- /* TrackCIconButton should be called whenever a click is made
- inside of a color icon button. if the last time the button
- was drawn its state was not kCBup or the click is outside
- of the button, then this routine returns false. */
- Boolean TrackCIconButton(CIconButtonHandle cicb, Point where);
-
- /* RBCLRsrcHandle defines the resource type used to store
- a list of color icon button resource IDs. In this example,
- the user configurable button ids are stored in a RBCLRsrcHandle
- resource. */
- #pragma options align=mac68k
- typedef struct {
- short n;
- short ids[1];
- } RBCLResource, **RBCLRsrcHandle;
- #pragma options align=reset
-
- #endif
-